package com.promise.jokerdream.response.pc

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

// 活跃度信息
@Serializable
data class QueryLivenessResponse(
    override val result: Int,
    override val msg: String = "",
    val liveness: String = "",
    // 傻逼乐斗，礼包领取状态的用指数位移标识
    @SerialName("giftmarkseq")
    val giftMarkSeq: String = "",
    // 是否供奉守护神
    @SerialName("gongfengs")
    val feedDemo: Int = 1,
    // 佣兵助阵次数
    @SerialName("upformations")
    val upFormations: Int = 3,
    // 是否兑换了100斗豆，0为未兑换、1为已兑换
    val doudou100s: Int = 1,
    // 是否兑换了500斗豆，0为未兑换、1为已兑换
    val doudou500s: Int = 1,
): BasePCResponse {
    override fun getDescription(): String {
        return msg
    }
    
    /**
     * 获取当前活跃度数值
     * @return 当前活跃度，如果解析失败返回0
     */
    fun getCurrentLiveness(): Int {
        return if (liveness.contains("/")) {
            liveness.split("/").firstOrNull()?.toIntOrNull() ?: 0
        } else {
            liveness.toIntOrNull() ?: 0
        }
    }
    
    /**
     * 获取礼包领取状态
     * @param index 礼包索引（1-4）
     * @return 是否已领取
     */
    fun isGiftClaimed(index: Int): Boolean {
        if (index < 1 || index > 4) return false
        if (giftMarkSeq.length < index) return false
        return giftMarkSeq[index] == '1'
    }
}
